home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 3 / Light ROM 3 - Disc 2.iso / programs / pc / demos / truespac / setup.mst < prev    next >
Text File  |  1993-11-18  |  6KB  |  251 lines

  1. '**************************************************************************
  2. '*                       trueSpace 1.0 Setup
  3. '**************************************************************************
  4.  
  5. '***'$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST BADPATH       = 6400
  19. CONST SMALLWIN      = 2200
  20. CONST RESTART       = 2600
  21. CONST RESTARTII     = 2700
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL SizeReq&  '' Total Disk Size required for installation
  27.  
  28. ''File Types
  29. GLOBAL WinDir$
  30. GLOBAL WinSysDir$
  31. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  32. GLOBAL DEST$        ''Default destination directory.
  33. GLOBAL HasMath%     ''has math coprocessor
  34. GLOBAL HasEMU%      ''math emulator already installed    
  35.  
  36. DECLARE SUB Install
  37. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  38. DECLARE SUB Reboot LIB "iniupd.dll"
  39. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  40.  
  41.  
  42. INIT:
  43.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  44.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  45.  
  46.     SetBitmap CUIDLL$, LOGO
  47.     SetTitle "Caligari trueSpace 1.0 DEMO"
  48.  
  49.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  50.     IF szInf$ = "" THEN
  51.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  52.     END IF
  53.     ReadInfFile szInf$
  54.  
  55.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  56.     DEST$ = WINDRIVE$ + ":\truedemo"
  57.  
  58. WELCOME:
  59.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  60.     IF sz$ = "CONTINUE" THEN
  61.         UIPop 1
  62.     ELSE
  63.         GOSUB ASKQUIT
  64.         GOTO WELCOME
  65.     END IF
  66.  
  67.  
  68. GETPATH:
  69.     SetSymbolValue "EditTextIn", DEST$
  70.     SetSymbolValue "EditFocus", "END"
  71. GETPATHL1:
  72.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  73.     DEST$ = GetSymbolValue("EditTextOut")
  74.  
  75.     IF sz$ = "CONTINUE" THEN
  76.         IF IsDirWritable(DEST$) = 0 THEN
  77.             GOSUB BADPATH
  78.             GOTO GETPATHL1
  79.         END IF
  80.         UIPop 1
  81.     ELSEIF sz$ = "REACTIVATE" THEN
  82.         GOTO GETPATHL1
  83.     ELSEIF sz$ = "BACK" THEN
  84.         UIPop 1
  85.         GOTO WELCOME
  86.     ELSE
  87.         GOSUB ASKQUIT
  88.         GOTO GETPATH
  89.     END IF
  90.  
  91.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  92.     WinDir$ = GetWindowsDir()
  93.     WinSysDir$ = GetWindowsSysDir()
  94.     HasMath% = Has87MathChip()
  95.  
  96.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  97.     IF HasMath% < 1 THEN
  98.         GOTO NOMATHQUIT
  99.     END IF
  100.  
  101. ''  Check windrive diskspace
  102.     SizeReq& = GetCopyListCost ("","", "")
  103.     IF SizeReq& <> 0 THEN
  104.     GOSUB SMALLWIN
  105.     END
  106.     END IF
  107.  
  108.  
  109.     Install
  110.  
  111. '' If no emulator installed then no need to restart windows
  112.    IF HasMath%  > 0 THEN
  113.         GOTO QUIT
  114.    ENDIF
  115. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  116. '' else, it gives the user the choice
  117.     RESTRT% = RestartListEmpty ()
  118.     Exe$ = DEST$ + "\_msrstrt.exe"
  119.     Batch$ = DEST$ + "\_mssetup.bat"
  120.     empty$ = ""
  121. RESTART:
  122.     IF RESTRT% = 0 THEN
  123.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  124.        IF sz$ = "REACTIVATE" THEN
  125.       GOTO RESTART
  126.        ENDIF
  127.        I% = ExitExecRestart ()
  128.        RemoveFile Exe$, cmoForce
  129.        RemoveFile Batch$, cmoForce
  130.        END
  131.     ELSE
  132.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  133.        IF sz$ = "CONTINUE" THEN
  134.       I% = ExitWindowsExec (Exe$, empty$)
  135.       IF I% = 0 THEN
  136.          GOTO RESTART
  137.       ELSE
  138.          END
  139.      ENDIF
  140.        ELSEIF sz$ = "EXIT" THEN
  141.       UIPopAll
  142.       END
  143.        ELSEIF sz$ = "REACTIVATE" THEN
  144.       GOTO RESTART
  145.        ELSE
  146.       UIPop 1
  147.        END IF
  148.     END IF
  149.  
  150.  
  151. QUIT:
  152.     ON ERROR GOTO ERRQUIT
  153.  
  154.     IF ERR = 0 THEN
  155.     dlg% = EXITSUCCESS
  156.     ELSEIF ERR = STFQUIT THEN
  157.     dlg% = EXITQUIT
  158.     ELSE
  159.     dlg% = EXITFAILURE
  160.     END IF
  161. QUITL1:
  162.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  163.     IF sz$ = "REACTIVATE" THEN
  164.     GOTO QUITL1
  165.     END IF
  166.     UIPop 1
  167.     END
  168.  
  169. ERRQUIT:
  170.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  171.     END
  172.  
  173. NOMATHQUIT:
  174.     i% = DoMsgBox("This demo version requires a math coprocessor.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  175.     END
  176.  
  177. ASKQUIT:
  178.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  179.  
  180.     IF sz$ = "EXIT" THEN
  181.     UIPopAll
  182. ''        ERROR STFQUIT
  183.     END
  184.     ELSEIF sz$ = "REACTIVATE" THEN
  185.     GOTO ASKQUIT
  186.     ELSE
  187.     UIPop 1
  188.     END IF
  189.     RETURN
  190.  
  191. SMALLWIN:
  192.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  193.     IF sz$ = "REACTIVATE" THEN
  194.     GOTO SMALLWIN
  195.     END IF
  196.     UIPop 1
  197.     RETURN
  198.  
  199.  
  200. BADPATH:
  201.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  202.     IF sz$ = "REACTIVATE" THEN
  203.         GOTO BADPATH
  204.     END IF
  205.     UIPop 1
  206.     RETURN
  207.  
  208.  
  209. '**
  210. '** Purpose:
  211. '**     performs all installation operations.
  212. '** Arguments:
  213. '**     none.
  214. '** Returns:
  215. '**     none.
  216. '*************************************************************************
  217. SUB Install STATIC
  218.  
  219.     CreateDir DEST$, cmoNone
  220.  
  221.     CopyFilesInCopyList
  222.  
  223.     CreateProgmanGroup "trueSpace", "", cmoNone
  224.     ShowProgmanGroup  "trueSpace", 1, cmoNone
  225.     CreateProgmanItem "trueSpace", "trueSpace DEMO", MakePath(DEST$,"truespac.exe"), "", cmoOverwrite
  226.  
  227. END SUB
  228.  
  229.  
  230. '**
  231. '** Purpose:
  232. '**     Appends a file name to the end of a directory path,
  233. '**     inserting a backslash character as needed.
  234. '** Arguments:
  235. '**     szDir$  - full directory path (with optional ending "\")
  236. '**     szFile$ - filename to append to directory
  237. '** Returns:
  238. '**     Resulting fully qualified path name.
  239. '*************************************************************************
  240. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  241.     IF szDir$ = "" THEN
  242.         MakePath = szFile$
  243.     ELSEIF szFile$ = "" THEN
  244.         MakePath = szDir$
  245.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  246.         MakePath = szDir$ + szFile$
  247.     ELSE
  248.         MakePath = szDir$ + "\" + szFile$
  249.     END IF
  250. END FUNCTION
  251.